Client and Subscriber Development > Features > User Interface > OPC Common Dialogs > OPC-UA Common Dialogs > OPC-UA Host and Endpoint Dialog |
Icon:
With UAHostAndEndpointDialog, your application can integrate a dialog box from which the user can select a host (computer) and an endpoint of OPC-UA server residing on it. This dialog box combines functions of the Computer Browser Dialog and OPC-UA Endpoint Dialog - into a single dialog.
In addition, the user can add Host nodes in case the particular computer is not visible on the network, or add OPC-UA Endpoint nodes in case the OPC_UA Server is known to exist but is not returned by OPC-UA discovery feature.
Here is an example of OPC-UA Host and Endpoint dialog in action:
// This example shows how to let the user browse for a host (computer) and an endpoint of an OPC-UA server residing on it. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using System.Windows.Forms; using OpcLabs.EasyOpc.UA.Forms.Browsing; namespace UAFormsDocExamples._UAHostAndEndpointDialog { static class ShowDialog { public static void Main1(IWin32Window owner) { var hostAndEndpointDialog = new UAHostAndEndpointDialog { EndpointDescriptor = {Host = "opcua.demo-this.com"} }; DialogResult dialogResult = hostAndEndpointDialog.ShowDialog(owner); if (dialogResult != DialogResult.OK) return; // Display results MessageBox.Show(owner, $"HostElement: {hostAndEndpointDialog.HostElement}\r\n" + $"DiscoveryElement: {hostAndEndpointDialog.DiscoveryElement}"); } } }
# This example shows how to let the user browse for a host (computer) and # an endpoint of an OPC-UA server residing on it. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using namespace OpcLabs.EasyOpc.UA.Forms.Browsing # The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows . Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcForms.dll" # Instantiate the dialog object. $hostAndEndpointDialog = New-Object UAHostAndEndpointDialog $hostAndEndpointDialog.EndpointDescriptor.Host = "opcua.demo-this.com" $dialogResult = $hostAndEndpointDialog.ShowDialog() if ($dialogResult -ne [System.Windows.Forms.DialogResult]::OK) { return } # Display results $hostElement = $hostAndEndpointDialog.HostElement if ($hostElement -ne $null) { Write-Host "HostElement: $($hostElement)" } $discoveryElement = $hostAndEndpointDialog.DiscoveryElement if ($discoveryElement -ne $null) { Write-Host "DiscoveryElement: $($discoveryElement)" }
# This example shows how to let the user browse for a host (computer) and an endpoint of an OPC-UA server residing on it. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from System.Windows.Forms import * from OpcLabs.EasyOpc.UA.Forms.Browsing import * hostAndEndpointDialog = UAHostAndEndpointDialog() hostAndEndpointDialog.EndpointDescriptor.Host = 'opcua.demo-this.com' dialogResult = hostAndEndpointDialog.ShowDialog() print(dialogResult) if dialogResult != DialogResult.OK: exit() # Display results. print('HostElement: ', hostAndEndpointDialog.HostElement, sep='') print('DiscoveryElement: ', hostAndEndpointDialog.DiscoveryElement, sep='') print('Finished.')
' This example shows how to let the user browse for a host (computer) and an endpoint of an OPC-UA server residing on it. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Imports OpcLabs.EasyOpc.UA.Forms.Browsing Namespace UAFormsDocExamples._UAHostAndEndpointDialog Friend Class ShowDialog Shared Sub Main1(owner As IWin32Window) Dim hostAndEndpointDialog = New UAHostAndEndpointDialog() With { .EndpointDescriptor = New OpcLabs.EasyOpc.UA.UAEndpointDescriptor With { .Host = "opcua.demo-this.com" } } Dim dialogResult As DialogResult = hostAndEndpointDialog.ShowDialog(owner) If dialogResult <> DialogResult.OK Then Return End If ' Display results MessageBox.Show(owner, $"HostElement: {hostAndEndpointDialog.HostElement}" + Environment.NewLine + $"DiscoveryElement: {hostAndEndpointDialog.DiscoveryElement}") End Sub End Class End Namespace
// This example shows how to let the user browse for a host (computer) and an endpoint of an OPC-UA server residing on it. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . #include "stdafx.h" // Includes "QuickOpc.h", and other commonly used files #include "ShowDialog.h" namespace _UAHostAndEndpointDialog { void ShowDialog::Main() { // Initialize the COM library CoInitializeEx(NULL, COINIT_MULTITHREADED); { // _UAHostAndEndpointDialogPtr HostAndEndpointDialogPtr(__uuidof(UAHostAndEndpointDialog)); // HostAndEndpointDialogPtr->EndpointDescriptor->Host = L"opcua.demo-this.com"; // DialogResult dialogResult = HostAndEndpointDialogPtr->ShowDialog(NULL); _tprintf(_T("%d\n"), dialogResult); if (dialogResult == 1/*OK*/) { // Display results _HostElementPtr hostElementPtr = HostAndEndpointDialogPtr->HostElement; _tprintf(_T("HostElement: %s\n"), (hostElementPtr == NULL) ? _T("") : (LPCTSTR)CW2CT(hostElementPtr->ToString)); _UADiscoveryElementPtr discoveryElementPtr = HostAndEndpointDialogPtr->DiscoveryElement; _tprintf(_T("DiscoveryElement: %s\n"), (discoveryElementPtr == NULL) ? _T("") : (LPCTSTR)CW2CT(discoveryElementPtr->ToString)); } } // Release all interface pointers BEFORE calling CoUninitialize() CoUninitialize(); } }
// This example shows how to let the user browse for a host (computer) and // an endpoint of an OPC-UA server residing on it. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . class procedure ShowDialog.Main; var HostAndEndpointDialog: UAHostAndEndpointDialog; begin // Instantiate the dialog object HostAndEndpointDialog := CoUAHostAndEndpointDialog.Create; HostAndEndpointDialog.EndpointDescriptor.Host := 'opcua.demo-this.com'; HostAndEndpointDialog.ShowDialog(nil); // IMPROVE: check the dialog result // Display results // IMPROVE: check the nullness of HostAndEndpointDialog.HostElement WriteLn('HostElement: ', HostAndEndpointDialog.HostElement.ToString); // IMPROVE: check the nullness of HostAndEndpointDialog.DiscoveryElement WriteLn('DiscoveryElement: ', HostAndEndpointDialog.DiscoveryElement.ToString); end;
// This example shows how to let the user browse for a host (computer) and // an endpoint of an OPC-UA server residing on it. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . class procedure ShowDialog.Main; var HostAndEndpointDialog: OpcLabs_EasyOpcForms_TLB._UAHostAndEndpointDialog; DialogResult: System_Windows_Forms_TLB.DialogResult; HostElement: OpcLabs_BaseLib_TLB.HostElement; DiscoveryElement: OpcLabs_EasyOpcUA_TLB.UADiscoveryElement; begin // Instantiate the dialog object HostAndEndpointDialog := CoUAHostAndEndpointDialog.Create; HostAndEndpointDialog.EndpointDescriptor.Host := 'opcua.demo-this.com'; DialogResult := HostAndEndpointDialog.ShowDialog(nil); WriteLn(DialogResult); if DialogResult <> DialogResult_OK then Exit; // Display results HostElement := HostAndEndpointDialog.HostElement; if HostElement <> nil then WriteLn('HostElement: ', HostElement.ToString); DiscoveryElement := HostAndEndpointDialog.DiscoveryElement; if DiscoveryElement <> nil then WriteLn('DiscoveryElement: ', DiscoveryElement.ToString); end;
REM This example shows how to let the user browse for a host (computer) and an endpoint of an OPC-UA server residing on it. REM REM Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Private Sub ShowDialog_Main_Command_Click() OutputText = "" Dim HostAndEndpointDialog As New UAHostAndEndpointDialog HostAndEndpointDialog.endpointDescriptor.Host = "opcua.demo-this.com" Dim DialogResult DialogResult = HostAndEndpointDialog.ShowDialog OutputText = OutputText & DialogResult & vbCrLf If DialogResult <> 1 Then ' OK Exit Sub End If ' Display results Dim HostElement As HostElement Set HostElement = HostAndEndpointDialog.HostElement If Not HostElement Is Nothing Then OutputText = OutputText & "HostElement: " & HostElement & vbCrLf End If Dim DiscoveryElement As UADiscoveryElement Set DiscoveryElement = HostAndEndpointDialog.DiscoveryElement If Not DiscoveryElement Is Nothing Then OutputText = OutputText & "DiscoveryElement: " & DiscoveryElement & vbCrLf End If End Sub
Rem This example shows how to let the user browse for a host (computer) and an endpoint of an OPC-UA server residing on it. Rem Rem Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Option Explicit Const DialogResult_OK = 1 Dim HostAndEndpointDialog: Set HostAndEndpointDialog = CreateObject("OpcLabs.EasyOpc.UA.Forms.Browsing.UAHostAndEndpointDialog") HostAndEndpointDialog.EndpointDescriptor.Host = "opcua.demo-this.com" Dim dialogResult: dialogResult = HostAndEndpointDialog.ShowDialog WScript.Echo dialogResult If dialogResult <> DialogResult_OK Then WScript.Quit End If ' Display results WScript.Echo "HostElement: " & HostAndEndpointDialog.HostElement WScript.Echo "DiscoveryElement: " & HostAndEndpointDialog.DiscoveryElement
If you want to change the parameters of the client object the component uses to perform its OPC operations, you can use the ClientSelector Property.
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base, Product Downloads. Technical support: Online Forums, FAQ.Missing some example? Ask us for it on our Online Forums! You do not have to own a commercial license in order to use Online Forums, and we reply to every post.